[INFO] cloning repository https://github.com/jorgeer/miner
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jorgeer/miner" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjorgeer%2Fminer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjorgeer%2Fminer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7edcb7d09456f5449c88ccf7c578dd4f2eb44cab
[INFO] checking jorgeer/miner against master#cfbc6d4cf1acbac5c025acf8ed68929caa551df3 for pr-75494-beta
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjorgeer%2Fminer" "/workspace/builds/worker-10/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-10/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/jorgeer/miner on toolchain cfbc6d4cf1acbac5c025acf8ed68929caa551df3
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/jorgeer/miner
[INFO] finished tweaking git repo https://github.com/jorgeer/miner
[INFO] tweaked toml for git repo https://github.com/jorgeer/miner written to /workspace/builds/worker-10/source/Cargo.toml
[INFO] crate git repo https://github.com/jorgeer/miner already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded derivative v1.0.1
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.3.0
[INFO] [stderr]   Downloaded core-graphics v0.16.0
[INFO] [stderr]   Downloaded winit v0.17.2
[INFO] [stderr]   Downloaded syn v0.15.15
[INFO] [stderr]   Downloaded cocoa v0.17.0
[INFO] [stderr]   Downloaded core-foundation v0.6.2
[INFO] [stderr]   Downloaded glutin v0.18.0
[INFO] [stderr]   Downloaded pistoncore-glutin_window v0.48.0
[INFO] [stderr]   Downloaded image v0.20.0
[INFO] [stderr]   Downloaded piston2d-gfx_graphics v0.52.0
[INFO] [stderr]   Downloaded piston2d-opengl_graphics v0.54.0
[INFO] [stderr]   Downloaded piston_window v0.81.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dc1f11ee8f96830aee6583335051ad5a4f8e9252b27db0c6e40694f684b1f45c
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "dc1f11ee8f96830aee6583335051ad5a4f8e9252b27db0c6e40694f684b1f45c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dc1f11ee8f96830aee6583335051ad5a4f8e9252b27db0c6e40694f684b1f45c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dc1f11ee8f96830aee6583335051ad5a4f8e9252b27db0c6e40694f684b1f45c", kill_on_drop: false }`
[INFO] [stdout] dc1f11ee8f96830aee6583335051ad5a4f8e9252b27db0c6e40694f684b1f45c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 93e3ed64cc5054ce3d039cc3214f4ce9ac9b82964eba1b3b1f2578d79a0311fe
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "93e3ed64cc5054ce3d039cc3214f4ce9ac9b82964eba1b3b1f2578d79a0311fe", kill_on_drop: false }`
[INFO] [stderr]    Compiling version_check v0.1.5
[INFO] [stderr]    Compiling bitflags v1.0.4
[INFO] [stderr]     Checking cfg-if v0.1.6
[INFO] [stderr]    Compiling num-traits v0.2.6
[INFO] [stderr]    Compiling khronos_api v2.2.0
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking nodrop v0.1.12
[INFO] [stderr]     Checking piston-float v0.3.0
[INFO] [stderr]    Compiling num-integer v0.1.39
[INFO] [stderr]     Checking memoffset v0.2.1
[INFO] [stderr]    Compiling rayon-core v1.4.1
[INFO] [stderr]     Checking downcast-rs v1.0.3
[INFO] [stderr]     Checking adler32 v1.0.3
[INFO] [stderr]    Compiling rayon v1.0.2
[INFO] [stderr]     Checking either v1.5.0
[INFO] [stderr]    Compiling num-rational v0.2.1
[INFO] [stderr]     Checking shader_version v0.3.0
[INFO] [stderr]    Compiling pkg-config v0.3.14
[INFO] [stderr]     Checking piston-texture v0.6.0
[INFO] [stderr]     Checking fnv v1.0.6
[INFO] [stderr]     Checking interpolation v0.1.0
[INFO] [stderr]     Checking read_color v1.0.0
[INFO] [stderr]     Checking percent-encoding v1.0.1
[INFO] [stderr]     Checking piston-shaders_graphics2d v0.3.1
[INFO] [stderr]     Checking memmap v0.6.2
[INFO] [stderr]     Checking draw_state v0.8.0
[INFO] [stderr]     Checking stb_truetype v0.2.4
[INFO] [stderr]     Checking crossbeam-utils v0.2.2
[INFO] [stderr]     Checking log v0.4.6
[INFO] [stderr]     Checking arrayvec v0.4.7
[INFO] [stderr]     Checking owning_ref v0.3.3
[INFO] [stderr]    Compiling xml-rs v0.7.0
[INFO] [stderr]     Checking gif v0.10.1
[INFO] [stderr]     Checking unreachable v1.0.0
[INFO] [stderr]     Checking piston-viewport v0.3.0
[INFO] [stderr]     Checking vecmath v0.3.1
[INFO] [stderr]     Checking deflate v0.7.19
[INFO] [stderr]     Checking inflate v0.4.3
[INFO] [stderr]    Compiling proc-macro2 v0.4.20
[INFO] [stderr]     Checking rand v0.5.5
[INFO] [stderr]     Checking nix v0.11.0
[INFO] [stderr]     Checking smallvec v0.6.5
[INFO] [stderr]     Checking lock_api v0.1.4
[INFO] [stderr]    Compiling parking_lot_core v0.3.1
[INFO] [stderr]     Checking libloading v0.5.0
[INFO] [stderr]    Compiling lazy_static v1.1.0
[INFO] [stderr]     Checking dlib v0.4.1
[INFO] [stderr]    Compiling x11-dl v2.18.3
[INFO] [stderr]    Compiling quote v0.6.8
[INFO] [stderr]     Checking crossbeam-epoch v0.3.1
[INFO] [stderr]     Checking wayland-sys v0.20.12
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]    Compiling gl_generator v0.9.0
[INFO] [stderr]    Compiling wayland-scanner v0.20.12
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]    Compiling syn v0.15.15
[INFO] [stderr]     Checking wayland-commons v0.20.12
[INFO] [stderr]     Checking crossbeam-deque v0.2.0
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking ordered-float v0.5.2
[INFO] [stderr]     Checking rusttype v0.4.3
[INFO] [stderr]     Checking parking_lot v0.6.4
[INFO] [stderr]     Checking num-iter v0.1.37
[INFO] [stderr]     Checking png v0.12.0
[INFO] [stderr]    Compiling wayland-client v0.20.12
[INFO] [stderr]    Compiling wayland-protocols v0.20.12
[INFO] [stderr]    Compiling gl v0.10.0
[INFO] [stderr]    Compiling gfx_gl v0.5.0
[INFO] [stderr]    Compiling glutin v0.18.0
[INFO] [stderr]     Checking piston2d-graphics v0.26.0
[INFO] [stderr]     Checking jpeg-decoder v0.1.15
[INFO] [stderr]     Checking smithay-client-toolkit v0.3.0
[INFO] [stderr]     Checking winit v0.17.2
[INFO] [stderr]    Compiling serde_derive v1.0.80
[INFO] [stderr]    Compiling derivative v1.0.1
[INFO] [stderr]    Compiling num-derive v0.2.3
[INFO] [stderr]     Checking tiff v0.2.1
[INFO] [stderr]     Checking gfx_core v0.8.3
[INFO] [stderr]     Checking image v0.20.0
[INFO] [stderr]     Checking pistoncore-input v0.21.0
[INFO] [stderr]     Checking piston2d-opengl_graphics v0.54.0
[INFO] [stderr]     Checking gfx v0.17.1
[INFO] [stderr]     Checking gfx_device_gl v0.15.3
[INFO] [stderr]     Checking piston-gfx_texture v0.34.0
[INFO] [stderr]     Checking piston2d-gfx_graphics v0.52.0
[INFO] [stderr]     Checking pistoncore-window v0.32.0
[INFO] [stderr]     Checking pistoncore-event_loop v0.37.0
[INFO] [stderr]     Checking pistoncore-glutin_window v0.48.0
[INFO] [stderr]     Checking piston v0.37.0
[INFO] [stderr]     Checking piston_window v0.81.0
[INFO] [stderr]     Checking miner v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `grid_width`
[INFO] [stdout]   --> src/main.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let grid_width = 30;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_width`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lives`
[INFO] [stdout]   --> src/main.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |             for (pos, lives) in cells {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_lives`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lives`
[INFO] [stdout]   --> src/main.rs:64:19
[INFO] [stdout]    |
[INFO] [stdout] 64 |         for (pos, lives) in &self.cells {
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_lives`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/main.rs:58:26
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn update(&mut self, args: &UpdateArgs) {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `*newCells` as mutable, as it is behind a `&` reference
[INFO] [stdout]   --> src/main.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let newCells = &self.cells.clone();
[INFO] [stdout]    |                        ------------------- help: consider changing this to be a mutable reference: `&mut self.cells.clone()`
[INFO] [stdout] ...
[INFO] [stdout] 67 |             newCells.entry(xy_to_pos((x + 1, y), grid_width)).or_insert(1);
[INFO] [stdout]    |             ^^^^^^^^ `newCells` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `*newCells` as mutable, as it is behind a `&` reference
[INFO] [stdout]   --> src/main.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let newCells = &self.cells.clone();
[INFO] [stdout]    |                        ------------------- help: consider changing this to be a mutable reference: `&mut self.cells.clone()`
[INFO] [stdout] ...
[INFO] [stdout] 68 |             newCells.entry(xy_to_pos((x - 1, y), grid_width)).or_insert(1);
[INFO] [stdout]    |             ^^^^^^^^ `newCells` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `*newCells` as mutable, as it is behind a `&` reference
[INFO] [stdout]   --> src/main.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let newCells = &self.cells.clone();
[INFO] [stdout]    |                        ------------------- help: consider changing this to be a mutable reference: `&mut self.cells.clone()`
[INFO] [stdout] ...
[INFO] [stdout] 69 |             newCells.entry(xy_to_pos((x, y + 1), grid_width)).or_insert(1);
[INFO] [stdout]    |             ^^^^^^^^ `newCells` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `*newCells` as mutable, as it is behind a `&` reference
[INFO] [stdout]   --> src/main.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let newCells = &self.cells.clone();
[INFO] [stdout]    |                        ------------------- help: consider changing this to be a mutable reference: `&mut self.cells.clone()`
[INFO] [stdout] ...
[INFO] [stdout] 70 |             newCells.entry(xy_to_pos((x, y - 1), grid_width)).or_insert(1);
[INFO] [stdout]    |             ^^^^^^^^ `newCells` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `*newCells` which is behind a shared reference
[INFO] [stdout]   --> src/main.rs:73:22
[INFO] [stdout]    |
[INFO] [stdout] 73 |         self.cells = *newCells;
[INFO] [stdout]    |                      ^^^^^^^^^ move occurs because `*newCells` has type `std::collections::HashMap<i32, u8>`, which does not implement the `Copy` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors; 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0507, E0596.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0507`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `miner`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `grid_width`
[INFO] [stdout]   --> src/main.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let grid_width = 30;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_width`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lives`
[INFO] [stdout]   --> src/main.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |             for (pos, lives) in cells {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_lives`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lives`
[INFO] [stdout]   --> src/main.rs:64:19
[INFO] [stdout]    |
[INFO] [stdout] 64 |         for (pos, lives) in &self.cells {
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_lives`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/main.rs:58:26
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn update(&mut self, args: &UpdateArgs) {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `*newCells` as mutable, as it is behind a `&` reference
[INFO] [stdout]   --> src/main.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let newCells = &self.cells.clone();
[INFO] [stdout]    |                        ------------------- help: consider changing this to be a mutable reference: `&mut self.cells.clone()`
[INFO] [stdout] ...
[INFO] [stdout] 67 |             newCells.entry(xy_to_pos((x + 1, y), grid_width)).or_insert(1);
[INFO] [stdout]    |             ^^^^^^^^ `newCells` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `*newCells` as mutable, as it is behind a `&` reference
[INFO] [stdout]   --> src/main.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let newCells = &self.cells.clone();
[INFO] [stdout]    |                        ------------------- help: consider changing this to be a mutable reference: `&mut self.cells.clone()`
[INFO] [stdout] ...
[INFO] [stdout] 68 |             newCells.entry(xy_to_pos((x - 1, y), grid_width)).or_insert(1);
[INFO] [stdout]    |             ^^^^^^^^ `newCells` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `*newCells` as mutable, as it is behind a `&` reference
[INFO] [stdout]   --> src/main.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let newCells = &self.cells.clone();
[INFO] [stdout]    |                        ------------------- help: consider changing this to be a mutable reference: `&mut self.cells.clone()`
[INFO] [stdout] ...
[INFO] [stdout] 69 |             newCells.entry(xy_to_pos((x, y + 1), grid_width)).or_insert(1);
[INFO] [stdout]    |             ^^^^^^^^ `newCells` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `*newCells` as mutable, as it is behind a `&` reference
[INFO] [stdout]   --> src/main.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let newCells = &self.cells.clone();
[INFO] [stdout]    |                        ------------------- help: consider changing this to be a mutable reference: `&mut self.cells.clone()`
[INFO] [stdout] ...
[INFO] [stdout] 70 |             newCells.entry(xy_to_pos((x, y - 1), grid_width)).or_insert(1);
[INFO] [stdout]    |             ^^^^^^^^ `newCells` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `*newCells` which is behind a shared reference
[INFO] [stdout]   --> src/main.rs:73:22
[INFO] [stdout]    |
[INFO] [stdout] 73 |         self.cells = *newCells;
[INFO] [stdout]    |                      ^^^^^^^^^ move occurs because `*newCells` has type `std::collections::HashMap<i32, u8>`, which does not implement the `Copy` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors; 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0507, E0596.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0507`.
[INFO] [stdout] 
[INFO] [stderr] error: build failed
[INFO] running `Command { std: "docker" "inspect" "93e3ed64cc5054ce3d039cc3214f4ce9ac9b82964eba1b3b1f2578d79a0311fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "93e3ed64cc5054ce3d039cc3214f4ce9ac9b82964eba1b3b1f2578d79a0311fe", kill_on_drop: false }`
[INFO] [stdout] 93e3ed64cc5054ce3d039cc3214f4ce9ac9b82964eba1b3b1f2578d79a0311fe
